File Class এর ব্যবহার

Java Technologies - জাভা টাপল (Java Tuples)
289

File ক্লাস হলো java.io প্যাকেজের একটি অংশ, যা জাভাতে ফাইল এবং ডিরেক্টরি ব্যবস্থাপনা সহজতর করে। এটি ফাইল তৈরি, মুছে ফেলা, বৈশিষ্ট্য পরীক্ষা এবং ফাইল সম্পর্কিত কার্যক্রম সম্পাদনের জন্য ব্যবহৃত হয়।


File ক্লাসের মূল বৈশিষ্ট্য

  1. File এবং Directory Management: ফাইল বা ডিরেক্টরি তৈরি, মুছে ফেলা এবং পরীক্ষা করা।
  2. File Properties: ফাইল বা ডিরেক্টরির নাম, আকার, এবং পথ খুঁজে বের করা।
  3. Cross-Platform Path Handling: OS নিরপেক্ষ ফাইল এবং ডিরেক্টরি পাথ পরিচালনা।
  4. Security Check: ফাইল বা ডিরেক্টরির অনুমতি যাচাই।

File ক্লাসের কনস্ট্রাক্টর

১. File(String pathname)

File file = new File("example.txt");

২. File(String parent, String child)

File file = new File("C:\\Users\\User", "example.txt");

৩. File(File parent, String child)

File parentDir = new File("C:\\Users\\User");
File file = new File(parentDir, "example.txt");

File ক্লাসের গুরুত্বপূর্ণ মেথড

মেথডব্যাখ্যা
createNewFile()নতুন ফাইল তৈরি করে।
delete()ফাইল মুছে ফেলে।
exists()ফাইল বা ডিরেক্টরি আছে কিনা পরীক্ষা করে।
isDirectory()এটি একটি ডিরেক্টরি কিনা যাচাই করে।
isFile()এটি একটি ফাইল কিনা যাচাই করে।
getName()ফাইল বা ডিরেক্টরির নাম প্রদান করে।
getPath()ফাইল বা ডিরেক্টরির পাথ প্রদান করে।
length()ফাইলের আকার (bytes) প্রদান করে।
mkdir()নতুন ডিরেক্টরি তৈরি করে।
mkdirs()প্রয়োজনীয় সকল প্যারেন্ট ডিরেক্টরি সহ নতুন ডিরেক্টরি তৈরি করে।
list()একটি ডিরেক্টরিতে থাকা সকল ফাইল এবং সাব-ডিরেক্টরির নাম প্রদান করে।
canRead()ফাইলটি পড়া যায় কিনা যাচাই করে।
canWrite()ফাইলটি লেখা যায় কিনা যাচাই করে।

File ক্লাসের ব্যবহারিক উদাহরণ

১. নতুন ফাইল তৈরি করা

import java.io.File;
import java.io.IOException;

public class CreateFileExample {
    public static void main(String[] args) {
        try {
            File file = new File("example.txt");
            if (file.createNewFile()) {
                System.out.println("File created: " + file.getName());
            } else {
                System.out.println("File already exists.");
            }
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

২. ফাইল মুছে ফেলা

import java.io.File;

public class DeleteFileExample {
    public static void main(String[] args) {
        File file = new File("example.txt");
        if (file.delete()) {
            System.out.println("Deleted the file: " + file.getName());
        } else {
            System.out.println("Failed to delete the file.");
        }
    }
}

৩. ফাইলের বৈশিষ্ট্য পরীক্ষা করা

import java.io.File;

public class FilePropertiesExample {
    public static void main(String[] args) {
        File file = new File("example.txt");
        if (file.exists()) {
            System.out.println("File Name: " + file.getName());
            System.out.println("Absolute Path: " + file.getAbsolutePath());
            System.out.println("Writable: " + file.canWrite());
            System.out.println("Readable: " + file.canRead());
            System.out.println("File Size in bytes: " + file.length());
        } else {
            System.out.println("The file does not exist.");
        }
    }
}

৪. নতুন ডিরেক্টরি তৈরি করা

import java.io.File;

public class CreateDirectoryExample {
    public static void main(String[] args) {
        File dir = new File("MyDirectory");
        if (dir.mkdir()) {
            System.out.println("Directory created: " + dir.getName());
        } else {
            System.out.println("Failed to create directory.");
        }
    }
}

৫. ডিরেক্টরির সকল ফাইল এবং ফোল্ডার লিস্ট করা

import java.io.File;

public class ListFilesExample {
    public static void main(String[] args) {
        File dir = new File("MyDirectory");
        if (dir.isDirectory()) {
            String[] files = dir.list();
            if (files != null) {
                System.out.println("Files in " + dir.getName() + ":");
                for (String file : files) {
                    System.out.println(file);
                }
            }
        } else {
            System.out.println(dir.getName() + " is not a directory.");
        }
    }
}

৬. File Path Management

import java.io.File;

public class FilePathExample {
    public static void main(String[] args) {
        File file = new File("example.txt");
        System.out.println("Path: " + file.getPath());
        System.out.println("Absolute Path: " + file.getAbsolutePath());
        System.out.println("Parent: " + file.getParent());
    }
}

File ক্লাস ব্যবহারের সুবিধা

  1. File এবং Directory Management সহজ:
    • ফাইল এবং ডিরেক্টরির অস্তিত্ব, বৈশিষ্ট্য এবং ম্যানেজমেন্ট কার্যকর।
  2. Cross-Platform Compatibility:
    • পাথ এবং ডিরেক্টরি হ্যান্ডলিং সব অপারেটিং সিস্টেমে সমানভাবে কাজ করে।
  3. Error Handling:
    • Exceptions এর মাধ্যমে ফাইল অপারেশনে ত্রুটি নির্ণয় এবং হ্যান্ডলিং।

File ক্লাস ব্যবহারের সীমাবদ্ধতা

  1. I/O Performance:
    • বড় ফাইল অপারেশনের ক্ষেত্রে java.nio তুলনায় ধীর।
  2. Stream Management:
    • শুধুমাত্র ফাইল ম্যানেজমেন্টে কার্যকর; স্ট্রিম ব্যবস্থাপনায় অতিরিক্ত ক্লাস প্রয়োজন।

Best Practices

  1. Error Handling:
    • সবসময় Exception ব্লক ব্যবহার করুন এবং ফাইল অপারেশনের সময় সমস্যা নির্ণয় করুন।
  2. Path Normalization:

    • OS-specific পাথ এড়াতে File.separator ব্যবহার করুন।
    String filePath = "MyDirectory" + File.separator + "example.txt";
    
  3. Use Try-With-Resources:
    • Stream পরিচালনার জন্য।
  4. Use NIO for Advanced Operations:
    • বড় ফাইল প্রসেসিং বা নেটওয়ার্ক ফাইল সিস্টেম ব্যবস্থাপনার জন্য java.nio বিবেচনা করুন।

File ক্লাস ফাইল এবং ডিরেক্টরি ব্যবস্থাপনার জন্য একটি সহজ এবং কার্যকর সমাধান প্রদান করে। ছোট এবং মাঝারি আকারের ফাইল অপারেশনের জন্য এটি আদর্শ। তবে বড় স্কেল অ্যাপ্লিকেশনের জন্য NIO বা Third-party Libraries (যেমন Apache Commons IO) ব্যবহার বেশি কার্যকর।

Content added By

File Class এর ভূমিকা এবং প্রয়োজনীয়তা

232

Java.io.File ক্লাসটি জাভার I/O প্যাকেজের একটি গুরুত্বপূর্ণ অংশ, যা ফাইল এবং ডিরেক্টরির তথ্য পরিচালনা করতে ব্যবহৃত হয়। এটি ফাইল তৈরি, পড়া, মুছে ফেলা, এবং ডিরেক্টরি ম্যানেজমেন্টের জন্য বিভিন্ন কার্যকরী মেথড সরবরাহ করে। Tuples ব্যবহার করে আমরা File ক্লাসের মাধ্যমে ডেটা এবং মেটাডেটা (যেমন ফাইল নাম, সাইজ) সংরক্ষণ ও ম্যানেজ করতে পারি।


File Class এর ভূমিকা

  1. File Management:
    • ফাইল তৈরি, নাম পরিবর্তন, এবং মুছে ফেলার জন্য ব্যবহৃত।
  2. Directory Management:
    • ডিরেক্টরি তৈরি, ফাইল তালিকা পেতে এবং সাব-ডিরেক্টরি ম্যানেজ করতে ব্যবহৃত।
  3. Metadata Handling:
    • ফাইলের নাম, পাথ, রিড-ওনলি স্ট্যাটাস, এবং ফাইলের সাইজের মতো তথ্য প্রদান।
  4. Validation:
    • ফাইল বা ডিরেক্টরি অস্তিত্ব আছে কিনা তা যাচাই করা।

File Class এর গুরুত্বপূর্ণ মেথডসমূহ

মেথডব্যবহার
createNewFile()নতুন ফাইল তৈরি করতে।
delete()ফাইল বা ডিরেক্টরি মুছে ফেলতে।
exists()ফাইল বা ডিরেক্টরি অস্তিত্ব আছে কিনা যাচাই করতে।
isFile()এটি ফাইল কিনা যাচাই করতে।
isDirectory()এটি ডিরেক্টরি কিনা যাচাই করতে।
getName()ফাইল বা ডিরেক্টরির নাম পেতে।
getAbsolutePath()ফাইলের সম্পূর্ণ পাথ পেতে।
list()ডিরেক্টরির সমস্ত ফাইল এবং সাব-ডিরেক্টরি তালিকা।
length()ফাইলের আকার (বাইটে) পেতে।
mkdir()নতুন ডিরেক্টরি তৈরি করতে।

File Class এর প্রয়োজনীয়তা

১. ফাইল ম্যানেজমেন্ট:

কোড উদাহরণ:

import java.io.File;

public class FileManagementExample {
    public static void main(String[] args) {
        File file = new File("example.txt");

        // ফাইল তৈরি
        try {
            if (file.createNewFile()) {
                System.out.println("File created: " + file.getName());
            } else {
                System.out.println("File already exists.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        // ফাইলের তথ্য প্রিন্ট
        if (file.exists()) {
            System.out.println("File name: " + file.getName());
            System.out.println("Absolute path: " + file.getAbsolutePath());
            System.out.println("Writable: " + file.canWrite());
            System.out.println("Readable: " + file.canRead());
            System.out.println("File size in bytes: " + file.length());
        }

        // ফাইল মুছে ফেলা
        if (file.delete()) {
            System.out.println("Deleted the file: " + file.getName());
        } else {
            System.out.println("Failed to delete the file.");
        }
    }
}

আউটপুট:

File created: example.txt
File name: example.txt
Absolute path: /path/to/example.txt
Writable: true
Readable: true
File size in bytes: 0
Deleted the file: example.txt

২. ডিরেক্টরি ম্যানেজমেন্ট:

কোড উদাহরণ:

import java.io.File;

public class DirectoryManagementExample {
    public static void main(String[] args) {
        File directory = new File("exampleDir");

        // ডিরেক্টরি তৈরি
        if (directory.mkdir()) {
            System.out.println("Directory created: " + directory.getName());
        } else {
            System.out.println("Directory already exists.");
        }

        // ডিরেক্টরির বিষয়বস্তু তালিকা
        File[] files = directory.listFiles();
        if (files != null) {
            for (File file : files) {
                System.out.println(file.getName());
            }
        }

        // ডিরেক্টরি মুছে ফেলা
        if (directory.delete()) {
            System.out.println("Deleted the directory: " + directory.getName());
        } else {
            System.out.println("Failed to delete the directory.");
        }
    }
}

৩. File Class এবং Tuples এর সমন্বয়:

Tuple ব্যবহার করে ফাইলের মেটাডেটা সংরক্ষণ:

import java.io.File;

class FileTuple {
    private final String fileName;
    private final String absolutePath;
    private final long fileSize;

    public FileTuple(String fileName, String absolutePath, long fileSize) {
        this.fileName = fileName;
        this.absolutePath = absolutePath;
        this.fileSize = fileSize;
    }

    public String getFileName() {
        return fileName;
    }

    public String getAbsolutePath() {
        return absolutePath;
    }

    public long getFileSize() {
        return fileSize;
    }

    @Override
    public String toString() {
        return "FileTuple{" +
                "fileName='" + fileName + '\'' +
                ", absolutePath='" + absolutePath + '\'' +
                ", fileSize=" + fileSize +
                '}';
    }
}

public class FileTupleExample {
    public static void main(String[] args) {
        File file = new File("example.txt");

        // ফাইল তৈরি
        try {
            if (file.createNewFile()) {
                System.out.println("File created: " + file.getName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        // FileTuple তৈরি
        FileTuple fileTuple = new FileTuple(
                file.getName(),
                file.getAbsolutePath(),
                file.length()
        );

        // FileTuple প্রিন্ট
        System.out.println(fileTuple);
    }
}

আউটপুট:

File created: example.txt
FileTuple{fileName='example.txt', absolutePath='/path/to/example.txt', fileSize=0}

File Class এর সুবিধা

  1. Flexibility: ফাইল এবং ডিরেক্টরি সম্পর্কিত সমস্ত কার্য সম্পাদন করার ক্ষমতা।
  2. Metadata Handling: ফাইলের মেটাডেটা সহজে সংগ্রহ করা যায়।
  3. File Validation: ফাইল বা ডিরেক্টরি অস্তিত্ব আছে কিনা এবং এর প্রকার যাচাই করা যায়।
  4. Integration with Tuples: ফাইলের ডেটা এবং মেটাডেটা Tuples ব্যবহার করে সংরক্ষণ এবং প্রক্রিয়াকরণ করা যায়।

File Class এর সীমাবদ্ধতা

  1. Exception Handling: প্রতিটি মেথড ব্যবহার করতে গেলে IOException হ্যান্ডল করতে হয়।
  2. Atomic Operations: বড় ডেটা প্রসেসিংয়ের জন্য Atomic ফাইল অপারেশন সাপোর্ট নেই।
  3. Performance: বড় ডেটা সেট পরিচালনা করার জন্য কম কার্যকর।
  4. Modern APIs Compatibility: NIO (New I/O) এর তুলনায় কিছু ক্ষেত্রে পুরনো।

File Class জাভার I/O প্যাকেজের একটি শক্তিশালী অংশ, যা ফাইল এবং ডিরেক্টরি সম্পর্কিত কার্য পরিচালনা করতে অত্যন্ত কার্যকর। Tuples ব্যবহার করে ফাইলের মেটাডেটা সংরক্ষণ এবং পরিচালনা করা সহজ হয়। তবে বড় ডেটা সেট এবং উন্নত ফাইল অপারেশনের জন্য NIO বা NIO.2 বিবেচনা করা যেতে পারে।

Content added By

ফাইল এবং ডিরেক্টরি তৈরি, মুছা, এবং পরিচালনা করা

182

Java এর java.io এবং java.nio.file প্যাকেজ ব্যবহার করে ফাইল এবং ডিরেক্টরি তৈরি, মুছা এবং পরিচালনা করা যায়। নিচে বিভিন্ন পদ্ধতির উদাহরণ এবং প্রাসঙ্গিক কোড প্রদান করা হয়েছে।


ফাইল এবং ডিরেক্টরি তৈরি করার পদ্ধতি

১. java.io.File প্যাকেজ ব্যবহার করে

কোড উদাহরণ:
import java.io.File;
import java.io.IOException;

public class FileCreateExample {
    public static void main(String[] args) {
        try {
            // ফাইল তৈরি
            File file = new File("example.txt");
            if (file.createNewFile()) {
                System.out.println("File created: " + file.getName());
            } else {
                System.out.println("File already exists.");
            }

            // ডিরেক্টরি তৈরি
            File directory = new File("exampleDir");
            if (directory.mkdir()) {
                System.out.println("Directory created: " + directory.getName());
            } else {
                System.out.println("Directory already exists.");
            }
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

আউটপুট:

File created: example.txt
Directory created: exampleDir

২. java.nio.file প্যাকেজ ব্যবহার করে

কোড উদাহরণ:
import java.nio.file.*;

public class FileNioCreateExample {
    public static void main(String[] args) {
        try {
            // ফাইল তৈরি
            Path filePath = Files.createFile(Paths.get("nio_example.txt"));
            System.out.println("File created: " + filePath);

            // ডিরেক্টরি তৈরি
            Path dirPath = Files.createDirectory(Paths.get("nio_exampleDir"));
            System.out.println("Directory created: " + dirPath);
        } catch (FileAlreadyExistsException e) {
            System.out.println("File or Directory already exists.");
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

ফাইল এবং ডিরেক্টরি মুছে ফেলার পদ্ধতি

১. java.io.File ব্যবহার করে ফাইল মুছা

কোড উদাহরণ:
import java.io.File;

public class FileDeleteExample {
    public static void main(String[] args) {
        // ফাইল মুছা
        File file = new File("example.txt");
        if (file.delete()) {
            System.out.println("Deleted the file: " + file.getName());
        } else {
            System.out.println("Failed to delete the file.");
        }

        // ডিরেক্টরি মুছা
        File directory = new File("exampleDir");
        if (directory.delete()) {
            System.out.println("Deleted the directory: " + directory.getName());
        } else {
            System.out.println("Failed to delete the directory. Ensure it's empty.");
        }
    }
}

২. java.nio.file ব্যবহার করে ফাইল মুছা

কোড উদাহরণ:
import java.nio.file.*;

public class FileNioDeleteExample {
    public static void main(String[] args) {
        try {
            // ফাইল মুছা
            Path filePath = Paths.get("nio_example.txt");
            Files.delete(filePath);
            System.out.println("File deleted: " + filePath);

            // ডিরেক্টরি মুছা
            Path dirPath = Paths.get("nio_exampleDir");
            Files.delete(dirPath);
            System.out.println("Directory deleted: " + dirPath);
        } catch (NoSuchFileException e) {
            System.out.println("File or directory does not exist.");
        } catch (DirectoryNotEmptyException e) {
            System.out.println("Directory is not empty.");
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

ফাইল এবং ডিরেক্টরি পরিচালনা করার পদ্ধতি

১. ফাইলের বৈশিষ্ট্য পরীক্ষা

কোড উদাহরণ:
import java.io.File;

public class FilePropertiesExample {
    public static void main(String[] args) {
        File file = new File("example.txt");

        if (file.exists()) {
            System.out.println("File exists: " + file.getName());
            System.out.println("Readable: " + file.canRead());
            System.out.println("Writable: " + file.canWrite());
            System.out.println("Absolute Path: " + file.getAbsolutePath());
            System.out.println("File Size: " + file.length() + " bytes");
        } else {
            System.out.println("The file does not exist.");
        }
    }
}

২. ডিরেক্টরির ভেতরে ফাইল তালিকা দেখানো

কোড উদাহরণ:
import java.io.File;

public class DirectoryListExample {
    public static void main(String[] args) {
        File directory = new File("exampleDir");

        if (directory.exists() && directory.isDirectory()) {
            String[] files = directory.list();
            System.out.println("Files in directory:");
            for (String file : files) {
                System.out.println(file);
            }
        } else {
            System.out.println("Directory does not exist.");
        }
    }
}

৩. ফাইল এবং ডিরেক্টরি কপি করা

java.nio.file ব্যবহার করে:
import java.nio.file.*;

public class FileCopyExample {
    public static void main(String[] args) {
        try {
            // ফাইল কপি করা
            Path sourceFile = Paths.get("example.txt");
            Path targetFile = Paths.get("copy_example.txt");
            Files.copy(sourceFile, targetFile, StandardCopyOption.REPLACE_EXISTING);
            System.out.println("File copied to: " + targetFile);

            // ডিরেক্টরি কপি করা (Recursive Copy)
            Path sourceDir = Paths.get("exampleDir");
            Path targetDir = Paths.get("copy_exampleDir");
            Files.walkFileTree(sourceDir, new SimpleFileVisitor<>() {
                @Override
                public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
                    Files.createDirectories(targetDir.resolve(sourceDir.relativize(dir)));
                    return FileVisitResult.CONTINUE;
                }

                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    Files.copy(file, targetDir.resolve(sourceDir.relativize(file)), StandardCopyOption.REPLACE_EXISTING);
                    return FileVisitResult.CONTINUE;
                }
            });
            System.out.println("Directory copied to: " + targetDir);
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

ফাইল এবং ডিরেক্টরি ব্যবস্থাপনার Best Practices

  1. Exception Handling নিশ্চিত করুন:
    • প্রতিটি ফাইল/ডিরেক্টরি কার্যক্রমের জন্য উপযুক্ত Exception Handling ব্যবহার করুন।
  2. java.nio.file পছন্দ করুন:
    • এটি java.io এর চেয়ে দ্রুত এবং আরও শক্তিশালী।
  3. Directory Empty Check করুন:
    • ডিরেক্টরি মুছে ফেলার আগে এটি খালি কিনা তা নিশ্চিত করুন।
  4. File Permissions Handle করুন:
    • ফাইল পড়া, লেখা বা সম্পাদনা করার আগে এর অনুমতিগুলো যাচাই করুন।

  • ফাইল তৈরি এবং পরিচালনা: java.io.File সহজ এবং সরাসরি পদ্ধতি প্রদান করে।
  • আধুনিক প্রয়োগের জন্য: java.nio.file ব্যবহার করে উন্নত কার্যক্ষমতা এবং অতিরিক্ত বৈশিষ্ট্য পাওয়া যায়।
  • মেমরি এবং পারফরম্যান্স: বড় ডেটা পরিচালনার সময় Exception Handling এবং Resource Management নিশ্চিত করুন।

সঠিক পদ্ধতি ব্যবহার করে ফাইল এবং ডিরেক্টরি ম্যানেজমেন্ট সিস্টেম আরও কার্যকর এবং নিরাপদ করা সম্ভব।

Content added By

ফাইলের ধরন, আকার, এবং অবস্থান নির্ধারণ

209

Java তে java.io.File ক্লাসের মাধ্যমে ফাইলের ধরণ, আকার, এবং অবস্থান নির্ধারণ করা যায়। এটি একটি গুরুত্বপূর্ণ ক্লাস, যা ফাইল এবং ডিরেক্টরি সম্পর্কিত বিভিন্ন বৈশিষ্ট্যকে পরিচালনা করতে ব্যবহৃত হয়। File ক্লাসটি ফাইলের ধরন (ফাইল বা ডিরেক্টরি), আকার (ফাইলের সাইজ), এবং অবস্থান (ফাইলের পাথ) নির্ধারণে ব্যবহৃত হয়।


File ক্লাসের মাধ্যমে ফাইলের ধরন, আকার, এবং অবস্থান নির্ধারণ

১. ফাইলের ধরন নির্ধারণ

ফাইলটি ফাইল না ডিরেক্টরি তা চেক করতে isFile() এবং isDirectory() মেথড ব্যবহার করা হয়।

  • isFile(): চেক করে এটি একটি ফাইল কিনা।
  • isDirectory(): চেক করে এটি একটি ডিরেক্টরি কিনা।

২. ফাইলের আকার নির্ধারণ

ফাইলের আকার (বাইটে) নির্ধারণ করতে length() মেথড ব্যবহার করা হয়।

৩. ফাইলের অবস্থান নির্ধারণ

ফাইলের অবস্থান (পাথ) জানতে getAbsolutePath() মেথড ব্যবহার করা হয়, যা ফাইলের সম্পূর্ণ পাথ রিটার্ন করে।


কোড উদাহরণ: ফাইলের ধরন, আকার, এবং অবস্থান নির্ধারণ

import java.io.File;

public class FilePropertiesExample {
    public static void main(String[] args) {
        // ফাইল অবজেক্ট তৈরি
        File file = new File("example.txt");

        // ফাইলের ধরন চেক করা
        if (file.exists()) {
            if (file.isFile()) {
                System.out.println(file.getName() + " is a file.");
            } else if (file.isDirectory()) {
                System.out.println(file.getName() + " is a directory.");
            } else {
                System.out.println(file.getName() + " is neither a file nor a directory.");
            }

            // ফাইলের আকার চেক করা
            System.out.println("File size: " + file.length() + " bytes");

            // ফাইলের অবস্থান চেক করা
            System.out.println("Absolute path: " + file.getAbsolutePath());
        } else {
            System.out.println(file.getName() + " does not exist.");
        }
    }
}

আউটপুট (যদি "example.txt" ফাইলটি বিদ্যমান থাকে):

example.txt is a file.
File size: 1024 bytes
Absolute path: C:\path\to\your\directory\example.txt

File Class এর অন্যান্য ব্যবহারযোগ্য মেথড

মেথডবর্ণনা
getName()ফাইলের নাম রিটার্ন করে।
getPath()ফাইলের রিলেটিভ পাথ রিটার্ন করে।
getAbsolutePath()ফাইলের সম্পূর্ণ পাথ রিটার্ন করে।
getParent()ফাইলের প্যারেন্ট ডিরেক্টরি রিটার্ন করে।
length()ফাইলের আকার (বাইটে) রিটার্ন করে।
lastModified()ফাইলের সর্বশেষ সংশোধন সময় রিটার্ন করে।
setReadOnly()ফাইলকে রিড-অনলি মোডে সেট করে।
delete()ফাইল বা ডিরেক্টরি মুছে ফেলে।

Tuple ব্যবহার করে ফাইলের প্রোপার্টি সংরক্ষণ

Java Tuples ব্যবহার করে ফাইলের ধরন, আকার, এবং অবস্থান একত্রে সংরক্ষণ করা যায়। এই পদ্ধতিতে, একটি Tuple ডেটা সংরক্ষণ করে, যা পরে সহজে ব্যবহার করা যেতে পারে।

কোড উদাহরণ: Tuple ব্যবহার করে ফাইলের প্রোপার্টি সংরক্ষণ

import java.io.File;
import org.apache.commons.lang3.tuple.Pair;

public class FileTupleExample {
    public static void main(String[] args) {
        File file = new File("example.txt");
        
        if (file.exists()) {
            // File properties in a Tuple
            Pair<String, Long> fileInfo = getFileInfo(file);
            System.out.println("File Type: " + fileInfo.getLeft());
            System.out.println("File Size: " + fileInfo.getRight() + " bytes");
            System.out.println("File Absolute Path: " + file.getAbsolutePath());
        } else {
            System.out.println("The file does not exist.");
        }
    }

    public static Pair<String, Long> getFileInfo(File file) {
        // Return file type and size in a Tuple
        String fileType = file.isFile() ? "File" : (file.isDirectory() ? "Directory" : "Unknown");
        long fileSize = file.length();
        return Pair.of(fileType, fileSize);
    }
}

আউটপুট (যদি "example.txt" ফাইলটি বিদ্যমান থাকে):

File Type: File
File Size: 1024 bytes
File Absolute Path: C:\path\to\your\directory\example.txt

Java File Class ব্যবহার করে আপনি সহজেই ফাইলের ধরন, আকার, এবং অবস্থান নির্ধারণ করতে পারেন। File ক্লাসের মাধ্যমে ফাইল সম্পর্কিত মৌলিক তথ্য পড়া এবং পরিচালনা করা যায়। Tuples ব্যবহার করে ফাইলের ধরন এবং আকার একত্রে সংরক্ষণ করা সহজ, এবং এটি কোডকে আরও পরিষ্কার ও কার্যকর করে।

  • File Class ফাইল এবং ডিরেক্টরি সম্পর্কিত তথ্য এবং পরিচালনা জন্য একটি শক্তিশালী টুল।
  • Tuple ব্যবহার করে ফাইলের বিভিন্ন প্রোপার্টি একত্রে সংরক্ষণ করা যায়, যা পরে বিভিন্ন জায়গায় ব্যবহৃত হতে পারে।
Content added By

উদাহরণ সহ File Class এর ব্যবহার

233

Java File Class হল java.io প্যাকেজের একটি ক্লাস, যা ফাইল এবং ডিরেক্টরির প্রোপার্টি ম্যানেজমেন্ট ও ম্যানিপুলেশন পরিচালনা করতে ব্যবহৃত হয়। এটি মূলত ফাইল তৈরি, মুছে ফেলা, এবং ফাইল বা ডিরেক্টরির প্রোপার্টি সংগ্রহ করার জন্য ব্যবহৃত হয়। File ক্লাস ফাইলের ডেটা পড়া বা লেখার কাজ সরাসরি করতে পারে না; বরং এটি স্ট্রিম বা রিডার/রাইটারের মাধ্যমে পরিচালিত হয়।


File Class এর গুরুত্বপূর্ণ বৈশিষ্ট্য

  1. File এবং Directory Management:
    • ফাইল তৈরি, মুছে ফেলা এবং ম্যানেজ করা।
    • ডিরেক্টরি তৈরি এবং মুছে ফেলা।
  2. File Information Access:
    • ফাইল বা ডিরেক্টরির নাম, পাথ, সাইজ ইত্যাদি তথ্য সংগ্রহ।
  3. File Permission:
    • ফাইলের রিড, রাইট এবং এক্সিকিউট পারমিশন চেক।

File Class এর গুরুত্বপূর্ণ মেথড

মেথডবর্ণনা
createNewFile()একটি নতুন ফাইল তৈরি করে।
delete()ফাইল বা ডিরেক্টরি মুছে ফেলে।
exists()চেক করে ফাইল বা ডিরেক্টরি বিদ্যমান কিনা।
getName()ফাইলের নাম রিটার্ন করে।
getAbsolutePath()ফাইলের সম্পূর্ণ পাথ রিটার্ন করে।
isDirectory()চেক করে এটি ডিরেক্টরি কিনা।
isFile()চেক করে এটি ফাইল কিনা।
length()ফাইলের সাইজ রিটার্ন করে।
mkdir()একটি নতুন ডিরেক্টরি তৈরি করে।
list()ডিরেক্টরির ফাইল বা ডিরেক্টরির লিস্ট রিটার্ন করে।

File Class এর উদাহরণ

১. একটি নতুন ফাইল তৈরি করা এবং মুছে ফেলা

import java.io.File;
import java.io.IOException;

public class FileExample {
    public static void main(String[] args) {
        try {
            // একটি নতুন ফাইল তৈরি
            File file = new File("example.txt");
            if (file.createNewFile()) {
                System.out.println("File created: " + file.getName());
            } else {
                System.out.println("File already exists.");
            }

            // ফাইল মুছে ফেলা
            if (file.delete()) {
                System.out.println("Deleted the file: " + file.getName());
            } else {
                System.out.println("Failed to delete the file.");
            }
        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

আউটপুট:

File created: example.txt
Deleted the file: example.txt

২. ফাইল বা ডিরেক্টরির প্রোপার্টি সংগ্রহ করা

import java.io.File;

public class FilePropertiesExample {
    public static void main(String[] args) {
        File file = new File("example.txt");

        if (file.exists()) {
            System.out.println("File Name: " + file.getName());
            System.out.println("Absolute Path: " + file.getAbsolutePath());
            System.out.println("Writeable: " + file.canWrite());
            System.out.println("Readable: " + file.canRead());
            System.out.println("File Size: " + file.length() + " bytes");
        } else {
            System.out.println("The file does not exist.");
        }
    }
}

৩. একটি ডিরেক্টরি তৈরি এবং এর কন্টেন্ট লিস্ট করা

import java.io.File;

public class DirectoryExample {
    public static void main(String[] args) {
        // একটি নতুন ডিরেক্টরি তৈরি
        File directory = new File("TestDirectory");
        if (directory.mkdir()) {
            System.out.println("Directory created: " + directory.getName());
        } else {
            System.out.println("Directory already exists.");
        }

        // ডিরেক্টরির কন্টেন্ট লিস্ট করা
        String[] files = directory.list();
        if (files != null) {
            System.out.println("Directory contents:");
            for (String file : files) {
                System.out.println(file);
            }
        } else {
            System.out.println("The directory is empty or does not exist.");
        }
    }
}

৪. একটি ফাইল চেক করা এটি ফাইল না ডিরেক্টরি

import java.io.File;

public class CheckFileOrDirectory {
    public static void main(String[] args) {
        File file = new File("example.txt");

        if (file.exists()) {
            if (file.isFile()) {
                System.out.println(file.getName() + " is a file.");
            } else if (file.isDirectory()) {
                System.out.println(file.getName() + " is a directory.");
            }
        } else {
            System.out.println("The file or directory does not exist.");
        }
    }
}

৫. টাপল (Tuples) ব্যবহার করে ফাইল প্রোপার্টি রিটার্ন করা

Java Tuples এর মাধ্যমে ফাইল বা ডিরেক্টরির প্রোপার্টি একত্রে রিটার্ন করতে পারেন।

Apache Commons Lang Tuples উদাহরণ:

import org.apache.commons.lang3.tuple.Pair;
import java.io.File;

public class FileWithTuple {
    public static Pair<String, Long> getFileInfo(String filePath) {
        File file = new File(filePath);
        if (file.exists() && file.isFile()) {
            return Pair.of(file.getName(), file.length());
        } else {
            return Pair.of("File does not exist", 0L);
        }
    }

    public static void main(String[] args) {
        Pair<String, Long> fileInfo = getFileInfo("example.txt");
        System.out.println("File Name: " + fileInfo.getLeft());
        System.out.println("File Size: " + fileInfo.getRight() + " bytes");
    }
}

File Class এর সুবিধা

  1. File এবং Directory Management সহজ: ফাইল বা ডিরেক্টরি তৈরি, মুছে ফেলা এবং তাদের প্রোপার্টি সংগ্রহ করা সহজ।
  2. Cross-Platform Support: Java File API বিভিন্ন প্ল্যাটফর্মে সমানভাবে কাজ করে।
  3. I/O Integration: File Class সহজেই Java I/O এবং NIO এর সাথে কাজ করতে পারে।

File Class এর সীমাবদ্ধতা

  1. Direct Data Access নেই: File Class শুধুমাত্র ফাইলের প্রোপার্টি ম্যানেজ করে। ডেটা পড়া/লেখা করার জন্য Stream বা Reader/Writer প্রয়োজন।
  2. Performance: বড় স্কেল ফাইল ম্যানেজমেন্ট সিস্টেমে এটি ধীর হতে পারে।
  3. Error Handling: I/O Exceptions সঠিকভাবে পরিচালনা করা প্রয়োজন।

Java File Class ফাইল এবং ডিরেক্টরির ম্যানেজমেন্টের জন্য একটি শক্তিশালী এবং সহজ সরঞ্জাম। এটি File Creation, Deletion, এবং Properties Management এর জন্য ব্যবহার করা হয়। Tuples এর সাথে File Class ব্যবহার করলে কোড আরও সংক্ষিপ্ত এবং কার্যকর হয়।

ব্যবহারিক ক্ষেত্রে:

  • ছোট ফাইল ম্যানেজমেন্ট টুল তৈরি করতে File Class ব্যবহার করুন।
  • বড় স্কেল সিস্টেমের জন্য NIO বা অন্যান্য উন্নত টুল বিবেচনা করুন।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...